package com.dana.gomoku.utils;

import ch.qos.logback.core.util.MD5Util;
import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;

import java.nio.charset.StandardCharsets;
import java.util.UUID;

public class SecurityUtils {
    /**
     * 生成加密密码
     * @param password 密码
     * @return 加密密码 数据库存储的信息是 盐值+MD5(盐值+明文)
     */
    public static String encrypt(String password){
        //生成随机盐值
        String salt= UUID.randomUUID().toString().replace("-","");
        String finalPassword= DigestUtils.md5DigestAsHex((password+salt).getBytes(StandardCharsets.UTF_8));
        return salt+finalPassword;
    }

    public static boolean verity(String inputPassword,String sqlPassword){
        if (!StringUtils.hasLength(inputPassword)){
            return false;
        }
        if (sqlPassword==null||sqlPassword.length()!=64){
            return false;
        }

        String salt=sqlPassword.substring(0,32);
        String finalPassword=DigestUtils.md5DigestAsHex((inputPassword+salt).getBytes(StandardCharsets.UTF_8));
        return (salt+finalPassword).equals(sqlPassword);
    }
}
